/*!
 * \file rsgisinterface.h
 * \brief 插件类接口文件
 * \author 张龙星
 * \version 1.00.00
 * \date 2015-08-04
 * \copyright 航天恒星科技有限公司遥感测绘事业部
 * \details 编码文件使用UTF-8编码格式，使用匈牙利命名法，使用doxygen注释样式
 *          类名采用RSGIS开头，动态库抛出标识采用XXXX_EXPORT
 */
#ifndef RSGISINTERFACE_H
#define RSGISINTERFACE_H


#include <QObject>
#include "rsgiscore_global.h"

class RSGISWindow;
class RSGISPluginManagerInterface;
class QDockWidget;

/*!
 * \brief The RSGISInterface是插件接口类，插件能够访问的接口全部在该类中抛出
 */
class RSGISCORESHARED_EXPORT RSGISInterface : public QObject
{
    Q_OBJECT
public:
    /*!
     * \brief RSGISInterface 构造函数
     * \param parent 父指针
     */
    explicit RSGISInterface(QObject *parent = 0);

    /*!
     * \brief ~RSGISInterface 析构函数
     */
    virtual ~RSGISInterface();

    /*!
     * \brief mainWindow 获取主框架窗口
     * \return 主框架窗口
     */
    virtual RSGISWindow* mainWindow() = 0;

    /*!
     * \brief pluginManagerInterface 获取插件管理接口
     * \return 插件管理接口
     */
    virtual RSGISPluginManagerInterface* pluginManagerInterface() = 0;

    /*!
     * \brief layerDockWidget 图层浮动框
     * \return
     */
    virtual QDockWidget* layerDockWidget() = 0;

    /*!
     * \brief propertyDockWidget 属性浮动框
     * \return
     */
    virtual QDockWidget* propertyDockWidget() = 0;

    /*!
     * \brief logOutDockWidget 日志输出浮动框
     * \return
     */
    virtual QDockWidget* logOutDockWidget() = 0;


public slots:
};

#endif // RSGISINTERFACE_H
